La clase de control es EDIT y en el fichero de recursos se ha de añadir dentro del bloque BEGIN......END donde se ponen los controles del diálogo:
//(...) BEGIN // control "texto a mostrar", ID, clase, estilos, x, y, ancho, alto CONTROL "Texto:", -1, "STATIC", SS_LEFT | WS_CHILD | WS_VISIBLE, 8, 9, 28, 8 CONTROL "", ID_TEXTO, "EDIT", ES_LEFT | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 36, 9, 76, 12 CONTROL "Aceptar", IDOK, "BUTTON", BS_PUSHBUTTON | BS_CENTER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 56, 26, 50, 14 END)
//(...)
BEGIN
// control "texto a mostrar", ID, clase, estilos, x, y, ancho, alto
CONTROL "Texto:", -1, "STATIC", SS_LEFT | WS_CHILD | WS_VISIBLE, 8, 9, 28, 8
CONTROL "", ID_TEXTO, "EDIT", ES_LEFT | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 36, 9, 76, 12
CONTROL "Aceptar", IDOK, "BUTTON", BS_PUSHBUTTON | BS_CENTER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 56, 26, 50, 14
END)El primer parámetro después de CONTROL es el texto que saldrá dentro del campo (en este caso, nada)
ES_ Edit Style alineación a la izquierda
WS_ Window Style ventana hija, con borde fino, y con parada de tabulador
Los controles Edit generan mensajes de comando WM_COMMAND por lo que hay que asegurar que no se confunden con el mensaje del botón aceptar:
case WM_COMMAND:
if (LOWORD(wParam) == IDOK)
{
EndDialog(hDlg, FALSE); // clic en "aceptar" cierra el dlg
}
return TRUE;case WM_COMMAND:
if (LOWORD(wParam) == IDOK)
{
EndDialog(hDlg, FALSE); // clic en "aceptar" cierra el dlg
}
return TRUE;En la carga del diálogo (mensaje WM_INITDIALOG) hacemos que el foco recaiga sobre el campo de texto y devolvemos FALSE para indicar que hemos dado un foco de forma explícita:
case WM_INITDIALOG:
SetFocus(GetDlgItem(hDlg, ID_TEXTO));
return FALSE; case WM_INITDIALOG:
SetFocus(GetDlgItem(hDlg, ID_TEXTO));
return FALSE;Para hacer eso usaremos la función SetFocus,que requiere como parámetro el manipulador de ventana del control que debe recibir el foco, este manipulador lo conseguimos con la función GetDlgItem, que a su vez necesita como parámetros un manipulador del diálogo y el identificador del control.
TBD PDTE